package com.zxy.ziems.server.controller;

import com.zxy.ziems.server.collection.task.CollectionTask;
import com.zxy.ziems.server.energy.task.DataIncrementTask;
import com.zxy.ziems.server.statistics.task.EnergyFlowTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 手动执行定时任务
 *
 * @author 10546533
 * @since 2024-05-17 10:29:03
 */
@RestController
@RequestMapping("/api/task")
public class TaskScheduleController {

    @Autowired
    private DataIncrementTask dataIncrementTask;
    @Autowired
    private CollectionTask collectionTask;
    @Autowired
    private EnergyFlowTask energyFlowTask;

    /**
     * 手动执行按天统计测量值任务
     */
    @PostMapping("/day/measure")
    public void syncDeviceMeasureDataDay() {
        dataIncrementTask.syncDeviceMeasureDataDay();
    }

    /**
     * 手动执行按小时统计测量值任务
     */
    @PostMapping("/hour/measure")
    public void insertDeviceHourData() {
        dataIncrementTask.insertDeviceHourData();
    }

    /**
     * 手动执行同步FMCS水数据
     */
    @PostMapping("/syncData")
    public void syncData() {
        collectionTask.sync();
    }

    /**
     * 手动执行电力点位信息
     */
    @PostMapping("/syncDlPoint")
    public void syncDlPoint () {
        collectionTask.syncDlPoint();
    }

    /**
     * 手动执行电力点位数据
     */
    @PostMapping("/syncDlVal")
    public void syncDlVal () {
        collectionTask.syncDlVal();
    }

    /**
     * 手动执行同步FMCS实时数据
     */
    @PostMapping("/syncReal")
    public void syncReal() {
        collectionTask.syncReal();
    }

    /**
     * 手动执行同步FMCS电力数据
     */
    @PostMapping("/syncFmcsDl")
    public void syncFmcsDL() {
        collectionTask.syncFmcsDl();
    }

    /**
     * 手动执行同步大宗气体
     */
    @PostMapping("/syncFmcsPv")
    public void syncFmcsPv() {
        collectionTask.syncFmcsPv();
    }

    /**
     * 手动执行同步FMCS
     */
    @PostMapping("/syncFmcs")
    public void syncFmcs() {
        collectionTask.syncFmcs();
    }

    /**
     * 手动执行同步水科纯废水电力数据
     */
    @GetMapping("/syncWaterDlData")
    public void syncWaterDlData() {
        collectionTask.syncWaterDlData();
    }

    /**
     * 手动执行同步水科纯废水化学品数据
     */
    @GetMapping("/syncWaterChemicalData")
    public void syncWaterChemicalData() {
        collectionTask.syncWaterChemicalData();
    }

    /**
     * 手动执行同步CIM电力数据
     */
    @GetMapping("/syncCimDlData")
    public void syncCimDlData() {
        collectionTask.syncCimDlData();
    }

    /**
     * 手动执行同步CIM水数据
     */
    @GetMapping("/syncCimWaterData")
    public void syncCimWaterData() {
        collectionTask.syncCimWaterData();
    }

    /**
     * 手动执行同步CIM水数据
     */
    @GetMapping("/syncCimGasData")
    public void syncCimGasData() {
        collectionTask.syncCimGasData();
    }

    /**
     * (不需要使用)手动执行同步手工录入天然气数据
     *
     */
    @GetMapping("/syncManualInputNaturalGasData")
    public void syncManualInputNaturalGasData() {
        collectionTask.syncManualInputNaturalGasData();
    }

    /**
     * (程序不完善，不使用)手动执行同步手工录入化学品数据
     */
    @GetMapping("/syncManualInputChemicalsData")
    public void syncManualInputChemicalsData() {
        collectionTask.syncManualInputChemicalsData();
    }


    /**
     * 手动执行同步能流图天数据
     */
    @PostMapping("/syncEnergyFlowDataDay")
    public void syncEnergyFlowDataDay() {
        energyFlowTask.syncEnergyFlowDataDay();
    }

    /**
     * 手动执行同步能流图月数据
     */
    @PostMapping("/syncEnergyFlowDataMonth")
    public void syncEnergyFlowDataMonth() {
        energyFlowTask.syncEnergyFlowDataMonth();
    }

}
